package cn.itcast.demo01;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;

/*
类 OutputStream;此抽象类是表示输出字节流的所有类的超类
FileOutputStream

一次写入多个字节
 void write(byte[] b)
          将 b.length 个字节从指定 byte 数组写入此文件输出流中。
 void write(byte[] b, int off, int len)
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。

 */
public class Demo02OutputStream {
    public static void main(String[] args) throws IOException {

        //1，创建一个 FileOutputStream对象，构造方法中传入数据目的地
        FileOutputStream fos = new FileOutputStream(new File("E:\\WkJava\\day02-code\\b.txt"));
        //2，调用 FileOutputStream对象中的方法write，把数据写入到文件中
        //void write(byte[] b)
        //          将 b.length 个字节从指定 byte 数组写入此文件输出流中。
//        byte[] bytes = {65,66,67,68,69};
        byte[] bytes = {-65,-66,-67,68,69};
        fos.write(bytes);

        /*
         void write(byte[] b, int off, int len)
          将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。

         */
        fos.write(bytes,1,2);

        /*
        写入字符的方法；可以使用String类中的方法把字符串转换为字节数组
         byte[] getBytes()
          使用平台的默认字符集将此 String 编码为 byte 序列，并将结果存储到一个新的 byte 数组中。
         */
        byte[] bytes1 = "你好".getBytes();
        System.out.println(Arrays.toString(bytes1));
        fos.write(bytes1);

        //3，释放资源
        fos.close();

    }
}
